package Day08;

class BaseClass {
    public int book = 6;
    public void base(){
        System.out.println("父类的普通方法");
    }
    public void test(){
        System.out.println("父类的被覆盖的方法");
    }
}

public class SubClass extends BaseClass{
    //重新定义一个book实例变量隐藏父类的book实例变量
    public String book = "JavaEE企业实战应用实战";
    public void test(){
        System.out.println("子类的覆盖父类的方法");
    }
    public void sub(){
        System.out.println("子类的普通方法");
    }

    public static void main(String[] args) {
        //下面编译时和运行时的类型完全一样，不存在多态
        BaseClass bc = new BaseClass();
        //输出6
        /*System.out.println(bc.book);
        bc.base();
        bc.test();*/
        //下面也一样，不存在多态
        SubClass sc = new SubClass();
        //System.out.println(sc.book);
     /*  sc.base();
       sc.test();*/
       //下面编译时和运行时的类型不一样，多态出现
        BaseClass ploy = new SubClass();
        //输出6表示访问的是父类的
        System.out.println(ploy.book);
        ploy.base();
        ploy.test();

    }
}
